<?php

define("DEFAULE_OPENID","C84F832A486E6AFA9E24BF008C326F50");
/*
Array
(
    [keyword] => test
    [pagesize] => 30
    [page] => 1
    [msgtype] => 1
    [searchtype] => 0
    [starttime] => 1347250328
    [access_token] => d1950b11b1de28dbac1b65ae6d05fe25
    [oauth_consumer_key] => 96d7b1ea2a1c4d4ca6f63960541761e7
    [openid] => C84F832A486E6AFA9E24BF008C326F50
    [oauth_version] => 2.a
    [clientip] => 127.0.0.1
    [scope] => all
    [appfrom] => php-sdk2.0beta
    [seqid] => 1352125413
    [serverip] => 127.0.0.1
)*/
class mblog_get_mblog_from_qq  extends Tencent
{
	
	
    public static function set($t_openid="",$t_access_token="",$t_openkey="")
    {
    	
    		OAuth::init(QQ_APP_ID, QQ_APP_SECRET);
    		
    		if(!$t_openid || !$t_access_token ||  !$t_openkey)
    		{
    			$db_qq_token = new db_qq_token();
    			$res = $db_qq_token->get_item_is_used();
    			
    			$t_openid = $res["t_openid"];
    			$t_access_token = $res["t_access_token"];
    			$t_openkey = $res["t_openkey"];
    			
    		}
    	
    	
    		parent::$t_openid = $t_openid;
    		parent::$t_access_token = $t_access_token;
    		parent::$t_openkey = $t_openkey;
    }
	function check_result($result)
	{
		//need change open_id
		if($result["errcode"]==0 && $result["msg"]=="result is empty")	
		{
			$db_qq_token = new db_qq_token();
			$db_qq_token->change_item_used();//更新默认用来抓取的token
			
		}
	}
	
	
	function get_current_user_info()
	{
		$this->set();
		$result = Tencent::api('user/info');
		
		return $result;
	}
	
	//搜索接口
	/**
	 *  format 返回数据的格式（json或xml）
		 keyword  搜索关键字（1-128字节）
		 pagesize  每页大小（1-30个）
		 contenttype 消息的正文类型（按位使用） 0-所有，0x01-纯文本，0x02-包含url，0x04-包含图片，0x08-包含视频，0x10-包含音频 
		 sorttype  排序方式 0-表示按默认方式排序(即时间排序(最新)) 
		 msgtype 消息的类型（按位使用） 0-所有，1-原创发表，2 转载，8-回复(针对一个消息，进行对话)，0x10-空回(点击客人页，进行对话) 
		 searchtype  搜索类型 0-默认搜索类型（现在为模糊搜索）  1-模糊搜索：时间参数starttime和endtime间隔小于一小时，时间参数会调整为starttime前endtime后的整点，即调整间隔为1小时 8-实时搜索：选择实时搜索，只返回最近几分钟的微博，时间参数需要设置为最近的几分钟范围内才生效，并且不会调整参数间隔
		 starttime  开始时间，用UNIX时间表示（从1970年1月1日0时0分0秒起至现在的总秒数）
		 endtime  结束时间，与starttime一起使用（必须大于starttime）
		 province 省编码（不填表示忽略地点搜索）
		 city  市编码（不填表示按省搜索）
		 longitude 经度，（实数）*1000000，需与latitude、radius配合使用
		 latitude  纬度，（实数）*1000000，需与longitude、radius配合使用
		 radius  半径（整数，单位米，不大于20000）,需与longitude、latitude配合使用

	 */
	function get_mblog_list_by_search($keyword="",$pagesize=30,$page=1,$contenttype="",$msgtype="",$searchtype=0,$starttime="",$endtime="",$sorttype="",$province="",$city="",
	$longitude="",$latitude="",$radius=""
	)
	{
		$this->set();
		if(strlen($keyword) > 0 )$params["keyword"] = $keyword;
		if(strlen($pagesize) > 0 )$params["pagesize"] = $pagesize;
		if(strlen($page) > 0 )$params["page"] = $page;
		if(strlen($contenttype) > 0 )$params["contenttype"] = $contenttype;
		if(strlen($msgtype) > 0 )$params["msgtype"] = $msgtype;
		if(strlen($searchtype) > 0 )$params["searchtype"] = $searchtype;
		if(strlen($sorttype) > 0 )$params["sorttype"] = $sorttype;	
		
		if(strlen($starttime) > 0 )$params["starttime"] = $starttime;
		if(strlen($endtime) > 0 )$params["endtime"] = $endtime;
		if(strlen($province) > 0 )$params["province"] = $province;
		if(strlen($city) > 0 )$params["city"] = $city;
		
		if(strlen($longitude) > 0 )$params["longitude"] = $longitude;
		if(strlen($latitude) > 0 )$params["latitude"] = $latitude;
		if(strlen($radius) > 0 )$params["radius"] = $radius;
		
		$result = Tencent::api('search/t',$params);
		$this->check_result($result);
		
		$content_res = "";
		if($result["errcode"] == 0)
		{
			
			
			
			$content_res["data"]["count"] = $result["data"]["totalnum"];
			$content_res["data"]["result"] = $result["data"]["info"];
			return $content_res;
		}
		else
		{
			return $result;
		}
		
		
	}
	
	
	
	/**
	 *  format 返回数据的格式（json或xml）
		 pageflag 分页标识（0：第一页，1：向下翻页，2：向上翻页）
		 pagetime 本页起始时间（第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间
		 reqnum 每次请求记录的条数（1-300条）
		 lastid 和pagetime配合使用（第一页：填0，向上翻页：填上一次请求返回的第一条记录id，向下翻页：填上一次请求返回的最后一条记录id）
		 name 你需要读取的用户的用户名（可选）
		 fopenid  你需要读取的用户的openid（可选）name和fopenid至少选一个，若同时存在则以name值为主 
		 type 拉取类型 0x1 原创发表  0x2 转载  0x8 回复  0x10 空回  0x20 提及  0x40 点评 如需拉取多个类型请使用|，如(0x1|0x2)得到3，则type=3即可，填零表示拉取所有类型 
		 contenttype 内容过滤。0-表示所有类型，1-带文本，2-带链接，4-带图片，8-带视频，0x10-带音频 建议不使用contenttype为1的类型，如果要拉取只有文本的微博，建议使用0x80
	 */
	function get_mblog_list_by_uid($pageflag,$pagetime,$reqnum=300,$lastid="",$name="",$fopenid="",$type="",$contenttype="")
	{
	
		$this->set();
		
		if(strlen($pageflag) > 0 )$params["pageflag"] = $pageflag;
		if(strlen($pagetime) > 0 )$params["pagetime"] = $pagetime;
		
		if(strlen($reqnum) > 0 )$params["reqnum"] = $reqnum;
		if(strlen($lastid) > 0 )$params["lastid"] = $lastid;
		if(strlen($name) > 0 )$params["name"] = $name;
		if(strlen($fopenid) > 0 )$params["fopenid"] = $fopenid;
		if(strlen($type) > 0 )$params["type"] = $type;
		if(strlen($contenttype) > 0 )$params["contenttype"] = $contenttype;
		
		
		$result = Tencent::api('statuses/user_timeline',$params);
		$this->check_result($result);
		
		$content_res = "";
		if($result["errcode"] == 0)
		{
			$content_res["data"]["count"] = $result["data"]["totalnum"];
			$content_res["data"]["result"] = $result["data"]["info"];
			return $content_res;
		}
		else
		{
			return $result;
		}
		
		
		return $result;
	}
	
	/**
	 *  name 	否 	他人的帐户名（可选）
		fopenid  他人的openid（可选） name和fopenid至少选一个，若同时存在则以name值为主 
	 */
	function get_user_info_by_uid($fopenid="",$name="")
	{
	
		$this->set();
		
		if(strlen($fopenid) > 0 )$params["fopenid"] = $fopenid;
		if(strlen($name) > 0 )$params["name"] = $name;
		
		$result = Tencent::api('user/other_info',$params);
		$this->check_result($result);
		
		return $result;
	}
	
	/*flag 	是 	类型标识。0－转播列表，1－点评列表，2－点评与转播列表
		rootid 	是 	转发或回复的微博根结点id（源微博id）
		pageflag 	是 	分页标识，用于翻页（0：第一页，1：向下翻页，2：向上翻页）
		pagetime 	是 	本页起始时间，与pageflag、twitterid共同使用，实现翻页功能（第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间）
		reqnum 	是 	每次请求记录的条数（1-100条）,默认为20条
		twitterid 	是 	微博id，与pageflag、pagetime共同使用，实现翻页功能（第1页填0，继续向下翻页，填上一次请求返回的最后一条记录id）*/
	
	function get_mblog_reply_by_mid($flag=1,$rootid,$pageflag=0,$reqnum="",$twitterid=0,$pagetime="")
	{
	
		$this->set();
		
		if(strlen($flag) > 0 )$params["flag"] = $flag;
		if(strlen($rootid) > 0 )$params["rootid"] = $rootid;
		
		if(strlen($pageflag) > 0 )$params["pageflag"] = $pageflag;
		if(strlen($reqnum) > 0 )$params["reqnum"] = $reqnum;
		if(strlen($twitterid) > 0 )$params["twitterid"] = $twitterid;
		if(strlen($pagetime) > 0 )$params["pagetime"] = $pagetime;
		
		
		$result = Tencent::api('t/re_list',$params);
		$this->check_result($result);
		
		
		$content_res = "";
		if($result["errcode"] == 0)
		{
			$content_res["data"]["count"] = $result["data"]["totalnum"];
			$content_res["data"]["result"] = $result["data"]["info"];
			return $content_res;
		}
		else
		{
			return $result;
		}
		
		
		return $result;
	}
}
